home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1997 August / Walnut Creek CDROM.7z / VOL_400 / 450_01 / CPPIMA / EXAMPLES / LOCALMAX.CC < prev    next >
Encoding:
C/C++ Source or Header  |  1995-01-24  |  1.8 KB  |  67 lines

  1. static const char rcs_id[] = "$Header: /disk1/schutte/src_tree/cppima/examples/RCS/localmax.cc,v 1.2 1994/06/07 15:20:16 schutte Exp schutte $";
  2. //    cppima: a C++ image processing library
  3.  
  4. //    Copyright (C) 1992  Klamer Schutte
  5.  
  6. //    klamer@mi.el.utwente.nl
  7.  
  8. //    This library is free software; you can redistribute it and/or
  9. //    modify it under the terms of the GNU Library General Public
  10. //    License as published by the Free Software Foundation; either
  11. //    version 2 of the License, or (at your option) any later version.
  12.  
  13. //    This library is distributed in the hope that it will be useful,
  14. //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16. //    Library General Public License for more details.
  17.  
  18. //    You should have received a copy of the GNU Library General Public
  19. //    License along with this library; if not, write to the Free
  20. //    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  
  22.  
  23. // $Log: localmax.cc,v $
  24. // Revision 1.2  1994/06/07  15:20:16  schutte
  25. // Changed from VIFF to IMA.
  26. //
  27. // Revision 1.1  1992/09/25  15:35:30  klamer
  28. // Initial revision
  29. //
  30.  
  31. // Calculate the maximum value in my environment
  32. // Could be faster if x and y direction are separated.
  33.  
  34. #include    <cppima/imageiter.h>
  35. #include    <cppima/enviter.h>
  36. #include    <cppima/charimaimage.h>
  37. #include    <cppima/charborderimage.h>
  38.  
  39. inline int
  40. Max( int a, int b )
  41. {
  42.     return (a>b) ? a : b;
  43. }
  44.  
  45. main(int , char *argv[])
  46. {
  47.     // Should check arguments
  48.  
  49.     CharImaImage    src_image(argv[1]);
  50.     CharBorderImage    borderimage(src_image);
  51.     CharImaImage    dst_image(borderimage);
  52.  
  53.     EnvImageIter    eii(borderimage);
  54.     ImageWIter    dst(eii,dst_image);
  55.  
  56.     while(eii())
  57.     {
  58.         EnvIter    ei(eii);
  59.  
  60.         for(int max = eii.readint();ei(); /* empty */)
  61.             max = Max(max,ei.readint());
  62.  
  63.         dst.writeint(max);
  64.     }
  65.     dst_image.writefile(argv[2]);
  66. }
  67.